aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)/[username]/invoice/[id]/+layout.server.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2023-10-07 23:30:52 -0700
committerAdam Soltys <[email protected]>2023-10-07 23:30:52 -0700
commit222bbc9080fbb15861cc5c0802449fcf06a53532 (patch)
tree95f9ef93daacf8f9b5bf7e5f3a181b46747f08df /src/routes/(app)/[username]/invoice/[id]/+layout.server.js
parent6b7f03fcf87d346f8e25a954220570da5b9a5c3d (diff)
downloadcoinos-ui-222bbc9080fbb15861cc5c0802449fcf06a53532.tar.gz
coinos-ui-222bbc9080fbb15861cc5c0802449fcf06a53532.zip
fix more options invoices
Diffstat (limited to 'src/routes/(app)/[username]/invoice/[id]/+layout.server.js')
-rw-r--r--src/routes/(app)/[username]/invoice/[id]/+layout.server.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/routes/(app)/[username]/invoice/[id]/+layout.server.js b/src/routes/(app)/[username]/invoice/[id]/+layout.server.js
new file mode 100644
index 00000000..4d7fd3b8
--- /dev/null
+++ b/src/routes/(app)/[username]/invoice/[id]/+layout.server.js
@@ -0,0 +1,31 @@
+import Qr from 'qrcode-base64';
+import { get } from '$lib/utils';
+import { redirect } from '@sveltejs/kit';
+
+export async function load({ depends, params, url, parent }) {
+ depends('app:invoice');
+
+ let { user } = await parent();
+ let { id } = params;
+ let invoice = await get(`/invoice/${id}`);
+ let options = !!url.searchParams.get('options');
+
+ if (user && invoice.uid !== user.id && !url.pathname.includes('tip') && !options) {
+ throw redirect(307, `/send/invoice/${id}`);
+ }
+
+ let { amount, pending, received } = invoice;
+ amount = parseInt(amount);
+
+ let paid = (!amount && received) || (amount > 0 && (pending >= amount || received >= amount));
+ if (paid && !url.pathname.endsWith('paid')) {
+ throw redirect(
+ 307,
+ `/${params.username}/invoice/${id}/paid` + (options ? '?options=true' : '')
+ );
+ }
+
+ let sm = Qr.drawImg(invoice.text || '', { size: 300 });
+
+ return { id, invoice, sm, lg: sm };
+}